The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware, such as semiconductors and circuit boards, and software, also known as computer programs. As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated and complex computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
Because of the power and complexity of computer systems, purchasing or upgrading a computer system is a difficult task. A customer must determine the proper computer system, software, and features to purchase (including the size, speed, or capacity of various devices), order the computer system and its features, and configure and install the computer system. Users often experience great difficulty in determining whether they are purchasing the correct computer system that will have enough capacity and power to run their applications and store their data, now and in the future.
These difficulties are exacerbated when the computer system uses logical partitions. In a logically-partitioned computer system, a single physical computer operates essentially like multiple and independent virtual computers, referred to as logical partitions, with the various resources in the physical computer (e.g., processors, memory, storage devices, and input/output controllers and devices) allocated among the various logical partitions. Each logical partition executes a separate operating system, and from the perspective of users and of the software applications executing on the logical partition, operates as a fully independent computer. The separate logical partitions typically operate under the control of a partition manager or hypervisor. Planning, ordering, configuring, and installing a logically-partitioned computer is even more difficult than a non-partitioned computer because the logically-partitioned computer may have multiple operating systems, each partition may be allocated only a portion of the resources of the computer system, and the partitions must be planned for and configured.
Multiple partitions may be defined that are allocated resources in such a way that all of the partitions may not be started at the same time. Thus, the computer's resources may be oversubscribed, i.e., the allocation conflicts. For example, the memory allocated to the partitions may exceed the memory capacity of the computer, or an I/O (Input/Output) controller may be allocated to multiple partitions, but it is capable of being used by only one partition at a time; hence, the resource allocations conflict or are oversubscribed.
This oversubscribing concept provides the advantage that it allows a single computer system to have multiple virtual images of partition combinations that can be activated at different times to allow a single hardware footprint to provide completely different resources, depending on the combinations of partitions that are activated. But, oversubscribing resources to partitions also has the disadvantage that the customer may experience difficulty in knowing which combinations of partitions are capable of being activated at the same time, and which are not, without actually buying the computer and the resources and attempting to activate the partitions.
Hence, a need exists for a technique that is capable of defining partitions that oversubscribe a computer system's resources and can also determine which combination of partitions are supported on that computer system.